// ----------------------------------------------------------------------------
/**
	File: thefencebuilder.cpp
	Author: Zef RosnBrick
	Archive: Live Archive
	Problem Number: 2592
*/
// ----------------------------------------------------------------------------

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <cassert>

#define EPS 1E-10
#define PI (2.0 * acos(0.0))

using namespace std;

#define sq(x) ((x) * (x))
#define law_of_cosines(a, b, c) acos(min(max((sq(a) + sq(b)- sq(c)) / (2 * (a) * (b)), -1.0), 1.0))

int n;
double L[100];

double bin_search(double max_lo, double max_hi, int max_i)
{
	double lo = max_lo, hi = max_hi, r, alpha;
	bool outside = true;

	while (abs(hi - lo) > EPS || (outside && lo < max_lo + EPS))
	{
		if (outside && abs(hi - lo) < EPS && lo < max_lo + EPS)
		{
			lo = max_lo;
			hi = max_hi;
			outside = false;
		}

		r = (hi + lo) / 2.0;
		alpha = 0.0;

		for (int i = 0; i < n; i++)
			alpha += (outside || i != max_i ? 1.0 : -1.0) * law_of_cosines(r, r, L[i]);

		if (outside ? alpha < 2 * PI : alpha > EPS)
			hi = r;
		else
			lo = r;
	}

	double area = 0.0;
	for (int i = 0; i < n; i++)
		area += (outside || i != max_i ? 1.0 : -1.0) * 0.5 * r * r * sin(law_of_cosines(r, r, L[i]));
	return area;
}

int main()
{
	int caseno = 0;
	double sum;

	while (++caseno)
	{
		if (!(cin >> n) || n == 0)
			return 0;

		sum = 0.0;
		for (int i = 0; i < n; i++)
		{
			cin >> L[i];
			sum += L[i];
		}

		sort(L, L + n);
		printf("Case %i: maximum area = %.3f\n", caseno, bin_search(0.5 * L[n - 1], 2.0 * sum, n - 1));
	}
}


